/**
 * @file 应用程序常量定义
 * @description 集中管理应用程序中使用的所有常量，提高代码的可维护性和一致性
 * @author 黄敏
 * @version 1.0.0
 * @since 2025-06-27
 */

/**
 * 特殊标签页ID常量
 * 用于标识系统内置的特殊标签页
 */
export const TAB_IDS = {
  /** 布局视图ID */
  LAYOUT_VIEW: -1,
  /** 分离窗口的布局视图ID */
  SEPARATE_LAYOUT_VIEW: -2,
  /** 主页面标签 */
  ACCOUNT: -10,
  /** 日历页面标签 */
  CALENDAR: -11,
  /** 邮件页面标签 */
  MAIL: -12,
  /** 搜索视图ID */
  SEARCH: -30,
  /** 公司分组视图（战役） */
  CAMPAIGN: -31,
  /** 浏览器插件视图  */
  BROWSER_PLUGIN: -32,
  /** 联系人详情视图 */
  CONTACT_DETAIL: -33,
  /** 进程监控页面标签 */
  PROCESS_MONITOR: -40,
  /** 设置页面标签 */
  SETTINGS: -50,
  /** 历史记录页面标签 */
  HISTORY: -51,
  /** 书签页面标签 */
  BOOKMARKS: -52,

  /** 图片预览页面标签 */
  IMAGE_PREVIEW: -60,
  /** 异步任务页面标签 **/
  TASK: -70,
  /** 活动时间线页面标签 */
  ACTIVITY: -81,
  /** 通知页面标签 */
  NOTICE: -90,
  /** 更新器页面标签 */
  UPDATER: -91
} as const
/**
 * 网络相关常量
 */
export const NETWORK_CONFIG = {
  /** 默认搜索引擎URL */
  DEFAULT_SEARCH_ENGINE: 'https://www.google.com/search?q=',
  /** URL协议正则表达式 */
  PROTOCOL_REGEX: /^(https?|ftps?|extension|f2):\/\//,
  /** 域名正则表达式 */
  DOMAIN_REGEX: /^[\w\-_]+(\.[\w\-_]+){1,4}/,
  /** IP地址正则表达式 */
  IP_REGEX: /^\d+\.\d+\.\d+\.\d+$/
} as const

/**
 * 主题相关常量
 */
export const THEME_CONFIG = {
  /** 可用主题列表 */
  AVAILABLE_THEMES: ['light', 'dark', 'system'],
  /** 默认主题 */
  DEFAULT_THEME: 'system'
} as const

/**
 * 本地URL配置常量
 * @description 定义应用内置的本地页面URL及其描述信息
 */
export const LOCAL_URLS = {
  /** 设置页面 */
  SETTINGS: {
    url: 'f2://settings',
    title: '设置',
    description: '应用程序设置和配置',
    icon: 'mdiCog'
  },
  /** 历史记录页面 */
  HISTORY: {
    url: 'f2://history',
    title: '历史记录',
    icon: 'mdiHistory'
  },
  /** 进程监控页面 */
  PROCESS: {
    url: 'f2://process',
    title: '进程监控',
    icon: 'mdiMemory'
  }
} as const

/**
 * 本地URL列表（用于快速访问）
 */
export const LOCAL_URL_LIST = [LOCAL_URLS.SETTINGS, LOCAL_URLS.HISTORY, LOCAL_URLS.PROCESS] as const

/**
 * 语言相关常量
 */
export const LANGUAGE_CONFIG = {
  /** 支持的语言列表 */
  SUPPORTED_LANGUAGES: ['zhHans', 'en'],
  /** 默认语言 */
  DEFAULT_LANGUAGE: 'en'
} as const

/**
 * 性能监控相关常量
 */
export const PERFORMANCE_CONFIG = {
  /** 生产环境Sentry采样率 */
  SENTRY_PRODUCTION_SAMPLE_RATE: 0.1,
  /** 开发环境Sentry采样率 */
  SENTRY_DEVELOPMENT_SAMPLE_RATE: 1
} as const

/**
 * 类型定义：从常量中提取类型
 */
export type SpecialTabId = (typeof TAB_IDS)[keyof typeof TAB_IDS]
export type AvailableTheme = (typeof THEME_CONFIG.AVAILABLE_THEMES)[number]
export type SupportedLanguage = (typeof LANGUAGE_CONFIG.SUPPORTED_LANGUAGES)[number]
